const U={}

U.crc16xmodem=(data) =>{
    let crc = 0;
    for (let i = 0; i < data.length; i++) {
        crc ^= data[i] << 8;
        for (let j = 0; j < 8; j++) {
            const check = crc & 0x8000;
            crc <<= 1;
            crc &= 0xFFFF; // 对于32位系统或大数值crc计算
            if (check) {
                crc ^= 0x1021;
            }
        }
    }
    return crc;
}


U.hexStringToArray=(hexStr)=> {
    // 去除字符串中的空格或其他分隔符
    hexStr = hexStr.replace(/[^\da-fA-F]/g, '');
    // 将字符串转换为字节数组
    const byteArr = [];
    for (let i = 0; i < hexStr.length; i += 2) {
        const byte = parseInt(hexStr.substr(i, 2), 16);
        byteArr.push(byte);
    }
    return byteArr;
}
function main(){
    let a=U.hexStringToArray("A5 E9 00 08 B5 E9 00 08 C5 E9 00 08 E3 70 00 08 E3 70 00 08 E3 70 00 08 E3 70 00 08 E3 70 00 08 E3 70 00 08 C5 DF 00 08 11 E0 00 08 9D F2 00 08 E3 70 00 08 E3 70 00 08 04 48 85 46 00 F0 EA FE 00 F0 C2 F8 00 48 00 47 59 3F 01 08 D8 8B 00 20 04 48 80 47 04 48 00 47 FE E7 FE E7 FE E7 FE E7 FE E7 FE E7 85 E9 00 08 B9 70 00 08 70 46 C0 08 2C D3 EF F3 09 80 81 69 89 1E 09 78 00 29 29 D1")
    console.log(U.crc16xmodem(a).toString(16))

}

//main()

export default U;